package com.geek.javase.wcy02.entendss;

/**
 * @author wangchaoyang
 * @desc TODO
 * @date 2025/9/2
 */
public class Person {
    String name;
    int age;
    boolean gender; // true 表示男性，false 表示女性
    Person partner; // 存储伴侣对象，初始为 null（未婚）

    public Person(String name, int age, boolean gender) {
        this.name = name;
        this.age = age;
        this.gender = gender;
        this.partner = null;
    }

    // marry 方法：判断当前对象与参数 p 是否能结婚
    public void marry(Person p) {
        // 情况1：同性（gender 相同）
        if (this.gender == p.gender) {
            System.out.println("不能结婚，因为同性！");
            return;
        }

        // 未达到法定结婚年龄（男<24，女<22）
        boolean selfLegal = (this.gender && this.age >= 24) || (!this.gender && this.age >= 22);
        boolean pLegal = (p.gender && p.age >= 24) || (!p.gender && p.age >= 22);
        if (!selfLegal || !pLegal) {
            System.out.println("不能结婚，因为未达到法定结婚年龄！");
            return;
        }

        // 某一方已结婚（partner 不为 null）
        if (this.partner != null || p.partner != null) {
            System.out.println("不能结婚，因为某一方已结婚！");
            return;
        }

        // 所有条件都满足：结婚（互相设置 partner）
        this.partner = p;
        p.partner = this;
        System.out.println(this.name + " 和 " + p.name + " 恭喜结婚！");
    }
}
